// 请求函数
function request(options) {
  return new Promise((resolve, reject) => {
    // 构建请求头
    const header = { ...(options.header || {}) };
    // 检查是否需要添加认证令牌
    if (!options.skipAuth) {
    }
    // 根据平台决定URL前缀
    let requestUrl = options.url;
    // #ifdef MP-WEIXIN
    // 微信小程序环境，使用完整URL
    requestUrl = `${import.meta.env.VITE_APP_API_URL}${options.url}`;
    // #endif

    // #ifndef MP-WEIXIN
    // 非微信小程序环境，使用代理前缀
    requestUrl = `${import.meta.env.VITE_APP_BASE_API}${options.url}`;
    // #endif

    // 统一处理请求
    uni.request({
      url: requestUrl,
      method: options.method,
      data: options.data,
      header,
      timeout: options.timeout || 30000,
      responseType: options.responseType,
      success: (res) => {
        // 请求成功
        if (res.statusCode >= 200 && res.statusCode < 300) {
          resolve(res.data);
        }
        // 未授权错误
        else if (res.statusCode === 401) {
          reject(new Error(res.data.desc || '未授权，请重新登录'));
        }
        // 其他错误
        else {
          const errorMsg = res.data.desc || `请求失败: ${res.statusCode}`;
          reject(new Error(errorMsg));
        }
      },
      fail: (err) => {
        reject(new Error(err.errMsg || '网络请求失败'));
      },
    });
  });
}

export default request;
